home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / dev / misc / FD2Pragma.lha / FD2Pragma / UseFD2Pragma < prev   
Encoding:
Text File  |  2000-09-04  |  9.7 KB  |  357 lines

  1. ; $VER: UseFD2Pragma 1.3 (18.08.2000) (Freeware) by Dirk Stöcker <stoecker@amigaworld.com>
  2. RequestChoice "Select the language you want to make files for"  "1: C (pragmas, protos, stubs, linker libs)*n2: Pascal (stubs, linker libs, units)*n3: Assembler (lvo files)*n4: Basic (BMAP files)*n5: E (Module)*n*n6: FD files" 1 2 3 4 5 6 >ENV:UseFDA1
  3.  
  4. IF $UseFDA1 EQ 0        ;**** FD file ****
  5.   RequestFile TITLE "Select the pragma input file" >ENV:UseFDInFile
  6.   RequestFile TITLE "Select the output drawer (or file)" >ENV:UseFDOutFile
  7.   FD2Pragma SPECIAL 200 INFILE $UseFDInFile TO $UseFDOutFile
  8.   Skip CleanUp
  9. EndIF
  10.  
  11. IF $UseFDA1 EQ 1        ;**** C ****
  12.   RequestChoice "Select the file type" "1: pragma files*n2: stubs, link library*n3: local libbase stubs*n4: protos*n5: GCC stuff*n6: PPC stuff (GCC, SAS-C, proto)*n7: VBCC stuff (68K, WOS, PPC)" 1 2 3 4 5 6 7 >ENV:UseFDA2
  13.  
  14.   IF $UseFDA2 EQ 1
  15.     Set UseFDMode 1
  16.     RequestChoice "Select the pragma type" "1: Aztec*n2: DICE*n3: SAS*n4: MAXON*n5: STORM*n6: all [default]*n7: all + GCC redirect*n8: GCC redirect" 1 2 3 4 5 6 7 8 >ENV:UseFDA3
  17.     IF $UseFDA3 EQ 1
  18.       Set UseFDSPECIAL 1
  19.     EndIF
  20.     IF $UseFDA3 EQ 2
  21.       Set UseFDSPECIAL 2
  22.     EndIF
  23.     IF $UseFDA3 EQ 3
  24.       Set UseFDSPECIAL 3
  25.     EndIF
  26.     IF $UseFDA3 EQ 4
  27.       Set UseFDSPECIAL 4
  28.     EndIF
  29.     IF $UseFDA3 EQ 5
  30.       Set UseFDSPECIAL 5
  31.     EndIF
  32.     IF $UseFDA3 EQ 6
  33.       Set UseFDSPECIAL 6
  34.     EndIF
  35.     IF $UseFDA3 EQ 7
  36.       Set UseFDSPECIAL 7
  37.     EndIF
  38.     IF $UseFDA3 EQ 0
  39.       Set UseFDSPECIAL 8
  40.       Set UseFDMode 0
  41.     EndIF
  42.   EndIF
  43.   If $UseFDA2 EQ 2
  44.     Set UseFDMode 2
  45.     RequestChoice "Select the stub type" "1: C text*n2: assembler text*n3: link library" 1 2 3 >ENV:UseFDA3
  46.     IF $UseFDA3 EQ 1
  47.       Set UseFDSPECIAL 10
  48.       Set UseFDMode 0
  49.     EndIF
  50.     IF $UseFDA3 EQ 2
  51.       Set UseFDSPECIAL 11
  52.     EndIF
  53.     IF $UseFDA3 EQ 0
  54.       Set UseFDSPECIAL 12
  55.     EndIF
  56.   EndIF
  57.   If $UseFDA2 EQ 3
  58.     Set UseFDMode 2
  59.     RequestChoice "Select the type" "1: register call*n2: stack call" 1 2 >ENV:UseFDA3
  60.     IF $UseFDA3 EQ 1
  61.       Set UseFDSPECIAL 13
  62.     EndIF
  63.     IF $UseFDA3 EQ 0
  64.       Set UseFDSPECIAL 14
  65.     EndIF
  66.   EndIF
  67.   If $UseFDA2 EQ 4
  68.     RequestChoice "Select the proto type" "1: with pragma/..._lib.h call*n2: with pragma/..._pragmas.h call*n3: with pragmas/..._lib.h call*n4: with pragmas/..._pragmas.h call*n5: with local/..._loc.h call*n6: all compilers*n7: GNU-C compiler only*n8: without lib definition*n9: with VBCC inline call*n10: with PPC specials" 1 2 3 4 5 6 7 8 9 10 >ENV:UseFDA3
  69.     IF $UseFDA3 EQ 1
  70.       Set UseFDSPECIAL 30
  71.     EndIF
  72.     IF $UseFDA3 EQ 2
  73.       Set UseFDSPECIAL 31
  74.     EndIF
  75.     IF $UseFDA3 EQ 3
  76.       Set UseFDSPECIAL 32
  77.     EndIF
  78.     IF $UseFDA3 EQ 4
  79.       Set UseFDSPECIAL 33
  80.     EndIF
  81.     IF $UseFDA3 EQ 5
  82.       Set UseFDSPECIAL 34
  83.     EndIF
  84.     IF $UseFDA3 EQ 6
  85.       Set UseFDSPECIAL 35
  86.     EndIF
  87.     IF $UseFDA3 EQ 7
  88.       Set UseFDSPECIAL 36
  89.     EndIF
  90.     IF $UseFDA3 EQ 8
  91.       Set UseFDSPECIAL 37
  92.     EndIF
  93.     IF $UseFDA3 EQ 9
  94.       Set UseFDSPECIAL 38
  95.     EndIF
  96.     IF $UseFDA3 EQ 0
  97.       Set UseFDSPECIAL 39
  98.     EndIF
  99.   EndIF
  100.   If $UseFDA2 EQ 5
  101.     Set UseFDMode 2
  102.     RequestChoice "Select inline file type" "1: new*n2: old*n3: lib stubs*n4: new style macros*n5: new style inlines" 1 2 3 4 5 >ENV:UseFDA3
  103.     IF $UseFDA3 EQ 1
  104.       Set UseFDSPECIAL 40
  105.     EndIF
  106.     IF $UseFDA3 EQ 2
  107.       Set UseFDSPECIAL 41
  108.     EndIF
  109.     IF $UseFDA3 EQ 3
  110.       Set UseFDSPECIAL 42
  111.     EndIF
  112.     IF $UseFDA3 EQ 4
  113.       Set UseFDSPECIAL 43
  114.     EndIF
  115.     IF $UseFDA3 EQ 0
  116.       Set UseFDSPECIAL 44
  117.     EndIF
  118.   EndIF
  119.   If $UseFDA2 EQ 6
  120.     Set UseFDMode 2
  121.     RequestChoice "Select PPC file type" "1: new inlines*n2: old inlines*n3: lib stub inlines*n4: SAS-C PPC file*n5: PPC proto file" 1 2 3 4 5 >ENV:UseFDA3
  122.     IF $UseFDA3 EQ 1
  123.       Set UseFDSPECIAL 50
  124.     EndIF
  125.     IF $UseFDA3 EQ 2
  126.       Set UseFDSPECIAL 51
  127.     EndIF
  128.     IF $UseFDA3 EQ 3
  129.       Set UseFDSPECIAL 52
  130.     EndIF
  131.     IF $UseFDA3 EQ 4
  132.       Set UseFDSPECIAL 53
  133.     EndIF
  134.     IF $UseFDA3 EQ 0
  135.       Set UseFDSPECIAL 42
  136.       Set UseFDMode 0
  137.     EndIF
  138.   EndIF
  139.   If $UseFDA2 EQ 0
  140.     Set UseFDMode 2
  141.     RequestChoice "Select file type" "1: 68K inlines*n2: WOS stubs (ASM)*n3: WOS stubs (ASM, libbase)*n4: WOS stubs (link)*n5: WOS stubs (link, libbase)*n6: PPC stubs (ASM)*n7: PPC stubs(link)" 1 2 3 4 5 6 7 >ENV:UseFDA3
  142.     IF $UseFDA3 EQ 1
  143.       Set UseFDSPECIAL 70
  144.       Set UseFDMode 0
  145.     EndIF
  146.     IF $UseFDA3 EQ 2
  147.       Set UseFDSPECIAL 71
  148.     EndIF
  149.     IF $UseFDA3 EQ 3
  150.       Set UseFDSPECIAL 72
  151.     EndIF
  152.     IF $UseFDA3 EQ 4
  153.       Set UseFDSPECIAL 73
  154.     EndIF
  155.     IF $UseFDA3 EQ 5
  156.       Set UseFDSPECIAL 74
  157.     EndIF
  158.     IF $UseFDA3 EQ 6
  159.       Set UseFDSPECIAL 75
  160.     EndIF
  161.     IF $UseFDA3 EQ 0
  162.       Set UseFDSPECIAL 76
  163.     EndIF
  164.   EndIF
  165. EndIF
  166.  
  167. IF $UseFDA1 EQ 2        ;**** Pascal ****
  168.   RequestChoice "Select the file type" "1: stub-functions - assembler text*n2: stub-functions - link library*n3: FPC unit text" 1 2 3 >ENV:UseFDA2
  169.  
  170.   IF $UseFDA2 EQ 1
  171.     Set UseFDSPECIAL 15        ; stub-functions for Pascal - assembler text
  172.   EndIF
  173.  
  174.   IF $UseFDA2 EQ 2
  175.     Set UseFDSPECIAL 16        ; stub-functions for Pascal - link library
  176.   EndIF
  177.  
  178.   IF $UseFDA2 EQ 0
  179.     Set UseFDSPECIAL 60        ; FPC pascal unit text
  180.   EndIF
  181.  
  182.   Set UseFDNeedCLIB 1
  183. EndIF
  184.  
  185. IF $UseFDA1 EQ 3        ;**** Assembler ****
  186.   RequestChoice "Select the file type" "1: lvo _lvo.i file*n2: lvo _lib.i file*n3: lvo _lvo.i file no XDEF*n4: lvo _lib.i file no XDEF*n5: link library" 1 2 3 4 5 >ENV:UseFDA2
  187.  
  188.   IF $UseFDA2 EQ 1
  189.     Set UseFDSPECIAL 20        ; assembler lvo _lvo.i file
  190.   EndIF
  191.  
  192.   IF $UseFDA2 EQ 2
  193.     Set UseFDSPECIAL 21        ; assembler lvo _lib.i file
  194.   EndIF
  195.  
  196.   IF $UseFDA2 EQ 3
  197.     Set UseFDSPECIAL 22        ; assembler lvo _lvo.i file no XDEF
  198.   EndIF
  199.  
  200.   IF $UseFDA2 EQ 4
  201.     Set UseFDSPECIAL 23        ; assembler lvo _lib.i file no XDEF
  202.   EndIF
  203.  
  204.   IF $UseFDA2 EQ 0
  205.     Set UseFDSPECIAL 24        ; assembler lvo link library
  206.   EndIF
  207.   
  208.   Set UseFDNeedCLIB 0
  209. EndIF
  210.  
  211. IF $UseFDA1 EQ 4        ;**** Basic ****
  212.   Set UseFDSPECIAL 17        ; BMAP file for AmigaBASIC and MaxonBASIC
  213.   Set UseFDNeedCLIB 0
  214. EndIF
  215.  
  216. IF $UseFDA1 EQ 4        ;**** E ****
  217.   Set UseFDSPECIAL 18        ; Module file for E
  218.   Set UseFDNeedCLIB 0
  219. EndIF
  220.  
  221. IF $UseFDA1 EQ 6        ;**** FD ****
  222.   Set UseFDSPECIAL 200
  223.   Set UseFDNeedCLIB 0
  224. EndIF
  225.  
  226. ; **** scan options here ****
  227. Set UseFDCOMMENT ""
  228. Set UseFDEXTERNC ""
  229. Set UseFDFPUONLY ""
  230. Set UseFDNEWSYNTAX ""
  231. Set UseFDNOFPU ""
  232. Set UseFDNOPPC ""
  233. Set UseFDNOSYMBOL ""
  234. Set UseFDOPT040 ""
  235. Set UseFDPPCONLY ""
  236. Set UseFDPRIVATE ""
  237. Set UseFDSECTION ""
  238. Set UseFDSMALLDATA ""
  239. Set UseFDSORTED ""
  240. Set UseFDSTORMFD ""
  241. Set UseFDUSESYSCALL ""
  242.  
  243. Lab ScanOpts
  244. RequestChoice "Select Option" "See Dokumentation for Option description.*n*nThis request reappears, as long as you do not*nselect 'XX'*n 1=COMMENT     2=EXTERNC     3=FPUONLY*n 4=NEWSYNTAX   5=NOFPU       6=NOPPC*n 7=NOSYMBOL   8=OPT040      9=PPCONLY*n10=PRIVATE    11=SECTION    12=SMALLDATA*n13=SORTED     14=STORMFD    15=USESYSCALL" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 XX >ENV:UseFDOption
  245.  
  246. IF $UseFDOption EQ 0
  247.  Skip EndScanOpts
  248. EndIf
  249. IF $UseFDOption EQ 1
  250.  Set UseFDCOMMENT COMMENT
  251. EndIf
  252. IF $UseFDOption EQ 2
  253.  Set UseFDEXTERNC EXTERNC
  254. EndIf
  255. IF $UseFDOption EQ 3
  256.  Set UseFDFPUONLY FPUONLY
  257. EndIf
  258. IF $UseFDOption EQ 4
  259.  Set UseFDNEWSYNTAX NEWSYNTAX
  260. EndIf
  261. IF $UseFDOption EQ 5
  262.  Set UseFDNOFPU NOFPU
  263. EndIf
  264. IF $UseFDOption EQ 6
  265.  Set UseFDNOPPC NOPPC
  266. EndIf
  267. IF $UseFDOption EQ 7
  268.  Set UseFDNOSYMBOL NOSYMBOL
  269. EndIf
  270. IF $UseFDOption EQ 8
  271.  Set UseFDOPT040 OPT040
  272. EndIf
  273. IF $UseFDOption EQ 9
  274.  Set UseFDPPCONLY PPCONLY
  275. EndIf
  276. IF $UseFDOption EQ 10
  277.  Set UseFDPRIVATE PRIVATE
  278. EndIf
  279. IF $UseFDOption EQ 11
  280.  Set UseFDSECTION SECTION
  281. EndIf
  282. IF $UseFDOption EQ 12
  283.  Set UseFDSMALLDATA SMALLDATA
  284. EndIf
  285. IF $UseFDOption EQ 13
  286.  Set UseFDSORTED SORTED
  287. EndIf
  288. IF $UseFDOption EQ 14
  289.  Set UseFDSTORMFD STORMFD
  290. EndIf
  291. IF $UseFDOption EQ 15
  292.  Set UseFDUSESYSCALL USESYSCALL
  293. EndIf
  294.  
  295. Skip ScanOpts BACK
  296.  
  297. Lab EndScanOpts
  298. Set UseFDArgs "" $UseFDCOMMENT $UseFDEXTERNC $UseFDFPUONLY $UseFDNEWSYNTAX $UseFDNOFPU $UseFDNOPPC $UseFDNOSYMBOL $UseFDOPT040 $UseFDPPCONLY $UseFDPRIVATE $UseFDSECTION $UseFDSMALLDATA $UseFDSORTED $UseFDSTORMFD $UseFDUSESYSCALL
  299.  
  300. RequestChoice "Do you want to insert a header?" "Select*nHEADERFILE to enter a file or*nSCANHEADER to scan the destionation file." HEADERFILE SCANHEADER NoHeader >ENV:UseFDHeader
  301. IF $UseFDHeader EQ 1
  302.   RequestFile TITLE "Select the header file" >ENV:UseFDHeaderFile
  303.   Set UseFDArgs $UseFDArgs HEADER $UseFDHeaderFile
  304. EndIF
  305.  
  306. IF $UseFDHeader EQ 2
  307.   Set UseFDArgs $UseFDArgs HEADER=@
  308. EndIF
  309.  
  310. IF $UseFDMode EQ 1
  311.   RequestChoice "Select definition mode" "1: _INCLUDE_PRAGMA_..._LIB_H [default]*n2: _PRAGMAS_..._LIB_H*n3: _PRAGMAS_..._PRAGMAS_H*n4: no definition" 1 2 3 4 >ENV:UseFDMode2
  312.   IF $UseFDMode2 EQ 1
  313.     Set UseFDArgs $UseFDArgs MODE 1
  314.   EndIF
  315.   IF $UseFDMode2 EQ 2
  316.     Set UseFDArgs $UseFDArgs MODE 2
  317.   EndIF
  318.   IF $UseFDMode2 EQ 3
  319.     Set UseFDArgs $UseFDArgs MODE 3
  320.   EndIF
  321.   IF $UseFDMode2 EQ 0
  322.     Set UseFDArgs $UseFDArgs MODE 4
  323.   EndIF
  324. EndIF
  325.  
  326. IF $UseFDMode EQ 2
  327.   RequestChoice "Select work mode" "1: all functions, normal interface*n2: only tag-functions, tagcall interface*n3: all functions, both interfaces [default]" 1 2 3 >ENV:UseFDMode2
  328.   IF $UseFDMode2 EQ 1
  329.     Set UseFDArgs $UseFDArgs MODE 1
  330.   EndIF
  331.   IF $UseFDMode2 EQ 2
  332.     Set UseFDArgs $UseFDArgs MODE 2
  333.   EndIF
  334.   IF $UseFDMode2 EQ 0
  335.     Set UseFDArgs $UseFDArgs MODE 3
  336.   EndIF
  337. EndIF
  338.  
  339. RequestFile TITLE "Select the FD input file" >ENV:UseFDInFile
  340. IF $UseFDNeedCLIB EQ 1
  341.   RequestFile TITLE "Select the clib prototype file" >ENV:UseFDCLIB
  342. EndIF
  343. RequestFile TITLE "Select the output drawer (or file)" >ENV:UseFDOutFile
  344.  
  345. IF $UseFDNeedCLIB EQ 1
  346.  Set UseFDArgs $UseFDArgs CLIB $UseFDCLIB
  347. EndIF
  348.  
  349. Echo "Executing following command:"
  350. Echo "FD2Pragma SPECIAL" $UseFDSPECIAL "INFILE" $UseFDInFile "TO" $UseFDOutFile $UseFDArgs
  351.  
  352. FD2Pragma SPECIAL $UseFDSPECIAL INFILE $UseFDInFile TO $UseFDOutFile $UseFDArgs
  353.  
  354. Lab CleanUp
  355. Delete >NIL: ENV:UseFD#?
  356. Echo "All Done. You can close this window now."
  357.